HAPI Server預設會使用H2 Database,H2是儲存在記憶體的關聯式資料庫(RDBC),一旦關機或是重新開啟後數據就會消失。若要長期儲存的話,目前HAPI Server官方有提供MS SQL Server、PostgreSQL、Oracle、Cockroach DB(Experimental)資料庫的支援,至於大家最常用的MySQL和MariaDB目前是Deprecated的狀態,不建議使用。
在這裡的範例我是選擇PostgreSQL,以docker-compose的方式部署測試環境。
以下是測試環境的版本
版本 | 備註 | |
---|---|---|
FHIR版本 | R4 | 目前最常用的版本,衛福部IG使用 |
HAPI FHIR Server版本 | 7.2.1 | |
PostgreSQL | 14 |
以下是建置測試環境步驟 :
docker-compose.yml
version: "3"
services:
hapi-fhir-jpaserver-start:
#hapi jpa server的image由執行同在下載項目的根目錄的Dockerfile build出來,所以會等滿久的QQ
build: .
container_name: hapi-fhir-jpaserver-start
restart: on-failure
environment:
#這裡是使用PostgreSQL的寫法,如果是用SQL Server的話需要進行修改
SPRING_DATASOURCE_URL: "jdbc:postgresql://hapi-fhir-postgres:5432/hapi"
SPRING_DATASOURCE_USERNAME: "admin"
SPRING_DATASOURCE_PASSWORD: "admin"
SPRING_DATASOURCE_DRIVERCLASSNAME: "org.postgresql.Driver"
#hapi jpa server占用的port
ports:
- "8080:8080"
hapi-fhir-postgres:
image: postgres:14-alpine
container_name: hapi-fhir-postgres
restart: always
environment:
POSTGRES_DB: "hapi"
POSTGRES_USER: "admin"
POSTGRES_PASSWORD: "admin"
volumes:
- hapi-fhir-postgres:/var/lib/postgresql/data
#持久化存儲的數據
volumes:
hapi-fhir-postgres:
修改完docker-compose.yml後,在當前目錄執行docker-compose指令
docker-compose up
因為要build出 hapi jpa server的image,所以需要一段時間。
待到docker-compose啟起來後,輸入URL查看
http://localhost:8080/
這邊會出現HAPI Server的入口(Company Names那個圖片是可以改的,如果需要的話)
輸入 http://127.0.0.1:8080/fhir/swagger-ui/ 可以進入swagger-ui的管理介面
可以選擇Resource種類,如選擇Observation便可以在swagger-ui介面下對控管Observation的API進行測試(CRUD)
現在就可以在測試環境進行測試了,可以先從衛福部或FHIR官網上找需要進行測試的Resource範本,在測試環境進行CRUD的測試,觀察Response,後續會介紹HAPI FHIR Server的神奇URL規則!!!